/*
 * Copyright (c) [2022] Huawei Technologies Co.,Ltd.All rights reserved.
 *
 * OpenArkCompiler is licensed under Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *
 *     http://license.coscl.org.cn/MulanPSL2
 *
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR
 * FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 */

#include "x64_standardize.h"
#include "x64_isa.h"

namespace maplebe {
void X64Standardize::STDZcopyri(CGInsn &insn) {
  insn.SetMachineOp(x64::MOP_movl_i_r);
  CGOperand *dest = insn.GetOperand(kInsnFirstOpnd);
  CGOperand *src = insn.GetOperand(kInsnSecondOpnd);
  insn.CleanAllOperand();
  insn.AddOperandChain(*src).AddOperandChain(*dest);
}
void X64Standardize::STDZstr(CGInsn &insn) {
  insn.SetMachineOp(x64::MOP_movq_r_m);
  CGOperand *dest = insn.GetOperand(kInsnFirstOpnd);
  CGOperand *src = insn.GetOperand(kInsnSecondOpnd);
  insn.CleanAllOperand();
  insn.AddOperandChain(*src).AddOperandChain(*dest);
}
}
